<?php

/**
 * Работает с адресом электронной почты
 * Зависимости:
 * -требуются файлы search.txt и replace.txt в той же директории, что и класс
 */
class email {
	
	/**
	 * Адрес электронной почты
	 * var string
	 */
	private $email = NULL;
	
	function __construct($email = NULL) {
		$this->set_email($email);
	}
	
	/**
	 * Задает адрес электронной почты
	 * @param string $email
	 */
	public function set_email($email) {
		$email = $this->remove_untispam_features($email);
		if ($this->is_email($email)) {
			$this->email = $email;
		}
	}
	
	public function get_email() {
		return $this->email;
	}
	
	/**
	 * Убирает антиспам-защиты
	 * @param string $email Адрес электронной почты
	 * @return string
	 */
	private function remove_untispam_features($email) {
		$email = preg_replace("/[\s]+/", "", $email);
		
		$search = explode("\n", file_get_contents(__dir__ . "/search.txt"));
		$replace = explode("\n", file_get_contents(__dir__ . "/replace.txt"));
		
		return str_replace($search, $replace, $email);
	}
	
	/**
	 * Проверяет адрес на корректность
	 * @param string $email Адрес электронной почты
	 * @return bool
	 */
	private function is_email($email) {
		return (preg_match("/^[-\d\w\.]+@[-a-zA-Z\d]+(\.[a-zA-Z\d]+)+$/", $email) === 1) ? true : false;
	}
}

?>
